SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
CREATE PROCEDURE [dbo].[paAsignarOrganizacionParaEstimulo] 
@CabeceraDeLiquidacion INT,
@ServicioAgente  INT,
@Agente INT
AS
SET NOCOUNT ON
DECLARE @ErrorX INT

SELECT @ErrorX = 0

IF NOT EXISTS(SELECT * FROM tb_ConceptosDelAgentePorOrganizacion WHERE Agente = @Agente AND Concepto = 33)
BEGIN
	DECLARE @NuevaOrganizacion INT
	--Se busca la nueva organizacion donde cobrar con la fecha mas antigua del servicio
	SELECT @NuevaOrganizacion = MIN(UbicacionOrig) FROM tb_ServiciosAgentes S
	INNER JOIN tb_Organizaciones O ON IdOrganizaciones = UbicacionOrig
	INNER JOIN tb_SubServiciosAgentes SS ON S.IdServicioAgente = SS.ServicioAgente
	WHERE Agente = @Agente 
	AND EsPrivada = 'S'		
	AND SS.FechaBaja IS NULL
	AND S.FechaAlta = (SELECT MIN(FechaAlta) FROM tb_ServiciosAgentes S INNER JOIN tb_Organizaciones O ON UbicacionOrig = IdOrganizaciones WHERE EsPrivada = 'S' AND S.FechaBaja IS NULL AND Agente = @Agente)
	
	IF @NuevaOrganizacion IS NULL 
		SELECT @NuevaOrganizacion = UbicacionOrig FROM tb_ServiciosAgentes WHERE IdServicioAgente = @ServicioAgente
	
		-- Nueva Organizacion para cobrar SALARIO FAMILIAR Y ESTIMULOS
		INSERT INTO tb_ConceptosDelAgentePorOrganizacion (Agente, Organizacion, Concepto) VALUES (@Agente, @NuevaOrganizacion, 33)
		SELECT @ErrorX = @@ERROR
		IF @ErrorX <> 0 
			INSERT tb_ErroresLiquidacion SELECT NULL Liquidacion, @Agente Agente, null, NULL Servicio, NULL Concepto, GETDATE() Fecha, 'No se pudo asignar Organizacion para cobro de Estimulo' Diagnostico, @CabeceraDeLiquidacion, @ErrorX

END
GO
